package com.hzb.erp.api.pc.clazz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzb.erp.api.pc.clazz.entity.ClassStudent;
import com.hzb.erp.api.pc.clazz.pojo.ClassStudentAddDTO;
import com.hzb.erp.api.pc.clazz.pojo.ClassStudentParamDTO;
import com.hzb.erp.api.pc.clazz.pojo.ClassStudentSignVO;
import com.hzb.erp.api.pc.student.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 班级学员表 服务类
 * </p>
 *
 * @author 541720500@qq.com
 */
public interface ClassStudentService extends IService<ClassStudent> {

//    IPage<ClassStudentVO> getList(ClassStudentParamDTO param);
//
//    List<ClassStudentVO> getAll(ClassStudentParamDTO param);
    /**
     * 查询班级学员签到信息、消课名称等
     */
    List<ClassStudentSignVO> signRecord(ClassStudentParamDTO param);
    /**
    * 删除学员
    * */
    Boolean deleteClassStudent(Long classId, Long studentId);

    /**
     * 删除学员 根据学生id列表删除
     * */
    int deleteClassStudent(List<Long> studentIds);

    /**
     * 从班级移除学员
     * @param ids classStudent的id
     * @return Boolean
     */
    Boolean deleteClassStudentByIds(List<Long> ids);

    /**
     * 批量调班
     * @param ids classStudent的id
     * @return Boolean
     */
    Boolean changeClassByIds(List<Long> ids, Long newClassId, Long staffId);

    Boolean addClassStudent(Long classId, Long studentId, Long staffId);

    void addClassStudents(ClassStudentAddDTO dto, Long staffId);

    List<Student> getStudentsByClassId(Long classId);

    boolean changeConsumeCourse(Long classStudentId, Long consumeCourseId);

    /**
     * 一键添加学员，通过班级相关的课程全部添加学员
     * */
    boolean addStudentsOneKey(Long classId, Long currentUserId);
}
